<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::TfQuadraticXYZComparison&lt; PointT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_tf_quadratic_x_y_z_comparison.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-attribs">Public 属性</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="classpcl_1_1_tf_quadratic_x_y_z_comparison-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::TfQuadraticXYZComparison&lt; PointT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>A comparison whether the (x,y,z) components of a given point satisfy (p'Ap + 2v'p + c [OP] 0). Here [OP] stands for the defined pcl::ComparisonOps, i.e. for GT, GE, LT, LE or EQ; p = (x,y,z) is a point of the point cloud; A is 3x3 matrix; v is the 3x1 vector; c is a scalar.  
 <a href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="conditional__removal_8h_source.html">conditional_removal.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::TfQuadraticXYZComparison&lt; PointT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_tf_quadratic_x_y_z_comparison.png" usemap="#pcl::TfQuadraticXYZComparison_3C_20PointT_20_3E_map" alt=""/>
  <map id="pcl::TfQuadraticXYZComparison_3C_20PointT_20_3E_map" name="pcl::TfQuadraticXYZComparison_3C_20PointT_20_3E_map">
<area href="classpcl_1_1_comparison_base.html" title="The (abstract) base class for the comparison object." alt="pcl::ComparisonBase&lt; PointT &gt;" shape="rect" coords="0,0,255,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a4195f955b62790a40471c216710e3074"><td class="memItemLeft" align="right" valign="top"><a id="a4195f955b62790a40471c216710e3074"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html">TfQuadraticXYZComparison</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a4195f955b62790a40471c216710e3074"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_comparison_base"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_comparison_base')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_comparison_base.html">pcl::ComparisonBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:a4d3a2695be4e844f6fd32c453b82064b inherit pub_types_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="a4d3a2695be4e844f6fd32c453b82064b"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_comparison_base.html">ComparisonBase</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a4d3a2695be4e844f6fd32c453b82064b inherit pub_types_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a239225d508f06794e90e566f22995b7d inherit pub_types_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="a239225d508f06794e90e566f22995b7d"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_comparison_base.html">ComparisonBase</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a239225d508f06794e90e566f22995b7d inherit pub_types_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a23dbc06ac0fa16d04ea66bf66e35baa6"><td class="memItemLeft" align="right" valign="top"><a id="a23dbc06ac0fa16d04ea66bf66e35baa6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a23dbc06ac0fa16d04ea66bf66e35baa6">TfQuadraticXYZComparison</a> ()</td></tr>
<tr class="memdesc:a23dbc06ac0fa16d04ea66bf66e35baa6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a23dbc06ac0fa16d04ea66bf66e35baa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a159cae1bac5df0c0a61f542e018f9b01"><td class="memItemLeft" align="right" valign="top"><a id="a159cae1bac5df0c0a61f542e018f9b01"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a159cae1bac5df0c0a61f542e018f9b01">~TfQuadraticXYZComparison</a> ()</td></tr>
<tr class="memdesc:a159cae1bac5df0c0a61f542e018f9b01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty destructor <br /></td></tr>
<tr class="separator:a159cae1bac5df0c0a61f542e018f9b01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37970a15684eceb16d06aa759de87993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a37970a15684eceb16d06aa759de87993">TfQuadraticXYZComparison</a> (const pcl::ComparisonOps::CompareOp op, const Eigen::Matrix3f &amp;comparison_matrix, const Eigen::Vector3f &amp;comparison_vector, const float &amp;comparison_scalar, const Eigen::Affine3f &amp;comparison_transform=Eigen::Affine3f::Identity())</td></tr>
<tr class="memdesc:a37970a15684eceb16d06aa759de87993"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a37970a15684eceb16d06aa759de87993">更多...</a><br /></td></tr>
<tr class="separator:a37970a15684eceb16d06aa759de87993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4d6fce48861fe1cfc445a01176ab932"><td class="memItemLeft" align="right" valign="top"><a id="ac4d6fce48861fe1cfc445a01176ab932"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#ac4d6fce48861fe1cfc445a01176ab932">setComparisonOperator</a> (const pcl::ComparisonOps::CompareOp op)</td></tr>
<tr class="memdesc:ac4d6fce48861fe1cfc445a01176ab932"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the operator "[OP]" of the comparison "p'Ap + 2v'p + c [OP] 0". <br /></td></tr>
<tr class="separator:ac4d6fce48861fe1cfc445a01176ab932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebb2683ad5578b74adae49816da0252d"><td class="memItemLeft" align="right" valign="top"><a id="aebb2683ad5578b74adae49816da0252d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#aebb2683ad5578b74adae49816da0252d">setComparisonMatrix</a> (const Eigen::Matrix3f &amp;matrix)</td></tr>
<tr class="memdesc:aebb2683ad5578b74adae49816da0252d"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0". <br /></td></tr>
<tr class="separator:aebb2683ad5578b74adae49816da0252d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabb5f5266ba86eac551b3c90e8066b95"><td class="memItemLeft" align="right" valign="top"><a id="aabb5f5266ba86eac551b3c90e8066b95"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#aabb5f5266ba86eac551b3c90e8066b95">setComparisonMatrix</a> (const Eigen::Matrix4f &amp;homogeneousMatrix)</td></tr>
<tr class="memdesc:aabb5f5266ba86eac551b3c90e8066b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0". <br /></td></tr>
<tr class="separator:aabb5f5266ba86eac551b3c90e8066b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47d5d97a31a86606f138aeae4de0d5e7"><td class="memItemLeft" align="right" valign="top"><a id="a47d5d97a31a86606f138aeae4de0d5e7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a47d5d97a31a86606f138aeae4de0d5e7">setComparisonVector</a> (const Eigen::Vector3f &amp;vector)</td></tr>
<tr class="memdesc:a47d5d97a31a86606f138aeae4de0d5e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0". <br /></td></tr>
<tr class="separator:a47d5d97a31a86606f138aeae4de0d5e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60b83dce4803966a1088b01deb55b97b"><td class="memItemLeft" align="right" valign="top"><a id="a60b83dce4803966a1088b01deb55b97b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a60b83dce4803966a1088b01deb55b97b">setComparisonVector</a> (const Eigen::Vector4f &amp;homogeneousVector)</td></tr>
<tr class="memdesc:a60b83dce4803966a1088b01deb55b97b"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0". <br /></td></tr>
<tr class="separator:a60b83dce4803966a1088b01deb55b97b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7986c76bd31f5e23cc8450c95bb3f871"><td class="memItemLeft" align="right" valign="top"><a id="a7986c76bd31f5e23cc8450c95bb3f871"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a7986c76bd31f5e23cc8450c95bb3f871">setComparisonScalar</a> (const float &amp;scalar)</td></tr>
<tr class="memdesc:a7986c76bd31f5e23cc8450c95bb3f871"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the scalar "c" of the comparison "p'Ap + 2v'p + c [OP] 0". <br /></td></tr>
<tr class="separator:a7986c76bd31f5e23cc8450c95bb3f871"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a888f33172e35b6d8ffb3e3305661aeeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a888f33172e35b6d8ffb3e3305661aeeb">transformComparison</a> (const Eigen::Matrix4f &amp;transform)</td></tr>
<tr class="memdesc:a888f33172e35b6d8ffb3e3305661aeeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">transform the coordinate system of the comparison. If you think of the transformation to be a translation and rotation of the comparison in the same coordinate system, you have to provide the inverse transformation. This function does not change the original definition of the comparison. Thus, each call of this function will assume the original definition of the comparison as starting point for the transformation.  <a href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a888f33172e35b6d8ffb3e3305661aeeb">更多...</a><br /></td></tr>
<tr class="separator:a888f33172e35b6d8ffb3e3305661aeeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1933b0e18e01cab1fa6b344c91512e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#ab1933b0e18e01cab1fa6b344c91512e3">transformComparison</a> (const Eigen::Affine3f &amp;transform)</td></tr>
<tr class="memdesc:ab1933b0e18e01cab1fa6b344c91512e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">transform the coordinate system of the comparison. If you think of the transformation to be a translation and rotation of the comparison in the same coordinate system, you have to provide the inverse transformation. This function does not change the original definition of the comparison. Thus, each call of this function will assume the original definition of the comparison as starting point for the transformation.  <a href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#ab1933b0e18e01cab1fa6b344c91512e3">更多...</a><br /></td></tr>
<tr class="separator:ab1933b0e18e01cab1fa6b344c91512e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a258054e9ce6fa5f7f85777fbbc4a506f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a258054e9ce6fa5f7f85777fbbc4a506f">evaluate</a> (const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;point) const</td></tr>
<tr class="memdesc:a258054e9ce6fa5f7f85777fbbc4a506f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the result of this comparison.  <a href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a258054e9ce6fa5f7f85777fbbc4a506f">更多...</a><br /></td></tr>
<tr class="separator:a258054e9ce6fa5f7f85777fbbc4a506f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_comparison_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_comparison_base')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_comparison_base.html">pcl::ComparisonBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:abee85bd5064b70bfecd5b42603010a63 inherit pub_methods_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="abee85bd5064b70bfecd5b42603010a63"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_comparison_base.html#abee85bd5064b70bfecd5b42603010a63">ComparisonBase</a> ()</td></tr>
<tr class="memdesc:abee85bd5064b70bfecd5b42603010a63 inherit pub_methods_classpcl_1_1_comparison_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:abee85bd5064b70bfecd5b42603010a63 inherit pub_methods_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa567e02abc177e1835c95413d6856e4e inherit pub_methods_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="aa567e02abc177e1835c95413d6856e4e"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_comparison_base.html#aa567e02abc177e1835c95413d6856e4e">~ComparisonBase</a> ()</td></tr>
<tr class="memdesc:aa567e02abc177e1835c95413d6856e4e inherit pub_methods_classpcl_1_1_comparison_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:aa567e02abc177e1835c95413d6856e4e inherit pub_methods_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6d09f98dfaba5315dd7b4a72c1d5816 inherit pub_methods_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="ab6d09f98dfaba5315dd7b4a72c1d5816"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_comparison_base.html#ab6d09f98dfaba5315dd7b4a72c1d5816">isCapable</a> () const</td></tr>
<tr class="memdesc:ab6d09f98dfaba5315dd7b4a72c1d5816 inherit pub_methods_classpcl_1_1_comparison_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return if the comparison is capable. <br /></td></tr>
<tr class="separator:ab6d09f98dfaba5315dd7b4a72c1d5816 inherit pub_methods_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public 属性</h2></td></tr>
<tr class="memitem:a42aaf8ddbec6a50b997ab2fd98a2ed1a"><td class="memItemLeft" align="right" valign="top"><a id="a42aaf8ddbec6a50b997ab2fd98a2ed1a"></a>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html">TfQuadraticXYZComparison</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a42aaf8ddbec6a50b997ab2fd98a2ed1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:a77130cf4a6c2bfccc1925c9d73c2b10e"><td class="memItemLeft" align="right" valign="top"><a id="a77130cf4a6c2bfccc1925c9d73c2b10e"></a>
Eigen::Matrix4f&#160;</td><td class="memItemRight" valign="bottom"><b>comp_matr_</b></td></tr>
<tr class="separator:a77130cf4a6c2bfccc1925c9d73c2b10e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0aa59a490a94a0853ce7611bae11f7a"><td class="memItemLeft" align="right" valign="top"><a id="ae0aa59a490a94a0853ce7611bae11f7a"></a>
Eigen::Vector4f&#160;</td><td class="memItemRight" valign="bottom"><b>comp_vect_</b></td></tr>
<tr class="separator:ae0aa59a490a94a0853ce7611bae11f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3caaf40c2935e927f3621dc514b868e9"><td class="memItemLeft" align="right" valign="top"><a id="a3caaf40c2935e927f3621dc514b868e9"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>comp_scalar_</b></td></tr>
<tr class="separator:a3caaf40c2935e927f3621dc514b868e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_comparison_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_comparison_base')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_comparison_base.html">pcl::ComparisonBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:a9664df54f741bccc65d817f9018611f3 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="a9664df54f741bccc65d817f9018611f3"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_comparison_base.html#a9664df54f741bccc65d817f9018611f3">capable_</a></td></tr>
<tr class="memdesc:a9664df54f741bccc65d817f9018611f3 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if capable. <br /></td></tr>
<tr class="separator:a9664df54f741bccc65d817f9018611f3 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe5a8620d01d90ba4600e45f1da8d508 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="afe5a8620d01d90ba4600e45f1da8d508"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_comparison_base.html#afe5a8620d01d90ba4600e45f1da8d508">field_name_</a></td></tr>
<tr class="memdesc:afe5a8620d01d90ba4600e45f1da8d508 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Field name to compare data on. <br /></td></tr>
<tr class="separator:afe5a8620d01d90ba4600e45f1da8d508 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0eeefbdc9bb6408c60272f4e02bdf90 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="ac0eeefbdc9bb6408c60272f4e02bdf90"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_comparison_base.html#ac0eeefbdc9bb6408c60272f4e02bdf90">offset_</a></td></tr>
<tr class="memdesc:ac0eeefbdc9bb6408c60272f4e02bdf90 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">The data offset. <br /></td></tr>
<tr class="separator:ac0eeefbdc9bb6408c60272f4e02bdf90 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a709e0c328ab14d502be0454380932652 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="memItemLeft" align="right" valign="top"><a id="a709e0c328ab14d502be0454380932652"></a>
ComparisonOps::CompareOp&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_comparison_base.html#a709e0c328ab14d502be0454380932652">op_</a></td></tr>
<tr class="memdesc:a709e0c328ab14d502be0454380932652 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">The comparison operator type. <br /></td></tr>
<tr class="separator:a709e0c328ab14d502be0454380932652 inherit pro_attribs_classpcl_1_1_comparison_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:ac2ac90c51fca7413653ad09d65064454"><td class="memItemLeft" align="right" valign="top"><a id="ac2ac90c51fca7413653ad09d65064454"></a>
Eigen::Matrix4f&#160;</td><td class="memItemRight" valign="bottom"><b>tf_comp_matr_</b></td></tr>
<tr class="separator:ac2ac90c51fca7413653ad09d65064454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8946c71494c54de7bb418b580895732"><td class="memItemLeft" align="right" valign="top"><a id="ae8946c71494c54de7bb418b580895732"></a>
Eigen::Vector4f&#160;</td><td class="memItemRight" valign="bottom"><b>tf_comp_vect_</b></td></tr>
<tr class="separator:ae8946c71494c54de7bb418b580895732"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointT&gt;<br />
class pcl::TfQuadraticXYZComparison&lt; PointT &gt;</h3>

<p>A comparison whether the (x,y,z) components of a given point satisfy (p'Ap + 2v'p + c [OP] 0). Here [OP] stands for the defined pcl::ComparisonOps, i.e. for GT, GE, LT, LE or EQ; p = (x,y,z) is a point of the point cloud; A is 3x3 matrix; v is the 3x1 vector; c is a scalar. </p>
<p>One can also use <a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html" title="A comparison whether the (x,y,z) components of a given point satisfy (p&#39;Ap + 2v&#39;p + c [OP] 0)....">TfQuadraticXYZComparison</a> for simpler geometric shapes by defining the quadratic parts (i.e. the matrix A) to be zero. By combining different instances of <a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html" title="A comparison whether the (x,y,z) components of a given point satisfy (p&#39;Ap + 2v&#39;p + c [OP] 0)....">TfQuadraticXYZComparison</a> one can get more complex shapes. For example, to have a simple cylinder (along the x-axis) of specific length one needs three comparisons combined as AND condition:</p><ol type="1">
<li>The cylinder: A = [0 0 0, 0 1 0, 0 0 1]; v = [0, 0, 0]; c = radius²; OP = LT (meaning "&lt;")</li>
<li>X-min limit: A = 0; v = [1, 0, 0]; c = x_min; OP = GT</li>
<li>X-max ...</li>
</ol>
<dl class="section author"><dt>作者</dt><dd>Julian Löchner </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a37970a15684eceb16d06aa759de87993"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37970a15684eceb16d06aa759de87993">&#9670;&nbsp;</a></span>TfQuadraticXYZComparison()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html">pcl::TfQuadraticXYZComparison</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html">TfQuadraticXYZComparison</a> </td>
          <td>(</td>
          <td class="paramtype">const pcl::ComparisonOps::CompareOp&#160;</td>
          <td class="paramname"><em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Matrix3f &amp;&#160;</td>
          <td class="paramname"><em>comparison_matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>comparison_vector</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"><em>comparison_scalar</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>comparison_transform</em> = <code>Eigen::Affine3f::Identity&#160;()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">op</td><td>the operator "[OP]" of the comparison "p'Ap + 2v'p + c [OP] 0". </td></tr>
    <tr><td class="paramname">comparison_matrix</td><td>the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0". </td></tr>
    <tr><td class="paramname">comparison_vector</td><td>the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0". </td></tr>
    <tr><td class="paramname">comparison_scalar</td><td>the scalar "c" of the comparison "p'Ap + 2v'p + c [OP] 0". </td></tr>
    <tr><td class="paramname">comparison_transform</td><td>the transformation of the comparison. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;                                                                                                            :</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;  comp_matr_ (), comp_vect_ (), comp_scalar_ (comparison_scalar)</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;{</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;  <span class="comment">// get all the fields</span></div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;  std::vector&lt;pcl::PCLPointField&gt; point_fields;</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;  <span class="comment">// Use a dummy cloud to get the field types in a clever way</span></div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html">PointCloud&lt;PointT&gt;</a> dummyCloud;</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;  <a class="code" href="group__common.html#gaa2ff830572b7cbf2fd8ce335fd9ca4fb">pcl::getFields</a> (dummyCloud, point_fields);</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160; </div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;  <span class="comment">// Locate the &quot;x&quot; field</span></div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;  <span class="keywordtype">size_t</span> dX;</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;  <span class="keywordflow">for</span> (dX = 0; dX &lt; point_fields.size (); ++dX)</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;  {</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keywordflow">if</span> (point_fields[dX].name == <span class="stringliteral">&quot;x&quot;</span>)</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;      <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;  }</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  <span class="keywordflow">if</span> (dX == point_fields.size ())</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;  {</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[pcl::TfQuadraticXYZComparison::TfQuadraticXYZComparison] x field not found!\n&quot;</span>);</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    <a class="code" href="classpcl_1_1_comparison_base.html#a9664df54f741bccc65d817f9018611f3">capable_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  }</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160; </div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;  <span class="comment">// Locate the &quot;y&quot; field</span></div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  <span class="keywordtype">size_t</span> dY;</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;  <span class="keywordflow">for</span> (dY = 0; dY &lt; point_fields.size (); ++dY)</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;  {</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    <span class="keywordflow">if</span> (point_fields[dY].name == <span class="stringliteral">&quot;y&quot;</span>)</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;      <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;  }</div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;  <span class="keywordflow">if</span> (dY == point_fields.size ())</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;  {</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[pcl::TfQuadraticXYZComparison::TfQuadraticXYZComparison] y field not found!\n&quot;</span>);</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <a class="code" href="classpcl_1_1_comparison_base.html#a9664df54f741bccc65d817f9018611f3">capable_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;  }</div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160; </div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;  <span class="comment">// Locate the &quot;z&quot; field</span></div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;  <span class="keywordtype">size_t</span> dZ;</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;  <span class="keywordflow">for</span> (dZ = 0; dZ &lt; point_fields.size (); ++dZ)</div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;  {</div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <span class="keywordflow">if</span> (point_fields[dZ].name == <span class="stringliteral">&quot;z&quot;</span>)</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;      <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;  }</div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;  <span class="keywordflow">if</span> (dZ == point_fields.size ())</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;  {</div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[pcl::TfQuadraticXYZComparison::TfQuadraticXYZComparison] z field not found!\n&quot;</span>);</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    <a class="code" href="classpcl_1_1_comparison_base.html#a9664df54f741bccc65d817f9018611f3">capable_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;  }</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160; </div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;  <a class="code" href="classpcl_1_1_comparison_base.html#a9664df54f741bccc65d817f9018611f3">capable_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;  <a class="code" href="classpcl_1_1_comparison_base.html#a709e0c328ab14d502be0454380932652">op_</a> = op;</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  <a class="code" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#aebb2683ad5578b74adae49816da0252d">setComparisonMatrix</a> (comparison_matrix);</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;  <a class="code" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a47d5d97a31a86606f138aeae4de0d5e7">setComparisonVector</a> (comparison_vector);</div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;  <span class="keywordflow">if</span> (!comparison_transform.matrix ().isIdentity ())</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    <a class="code" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a888f33172e35b6d8ffb3e3305661aeeb">transformComparison</a> (comparison_transform);</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_comparison_base_html_a709e0c328ab14d502be0454380932652"><div class="ttname"><a href="classpcl_1_1_comparison_base.html#a709e0c328ab14d502be0454380932652">pcl::ComparisonBase::op_</a></div><div class="ttdeci">ComparisonOps::CompareOp op_</div><div class="ttdoc">The comparison operator type.</div><div class="ttdef"><b>Definition:</b> conditional_removal.h:122</div></div>
<div class="ttc" id="aclasspcl_1_1_comparison_base_html_a9664df54f741bccc65d817f9018611f3"><div class="ttname"><a href="classpcl_1_1_comparison_base.html#a9664df54f741bccc65d817f9018611f3">pcl::ComparisonBase::capable_</a></div><div class="ttdeci">bool capable_</div><div class="ttdoc">True if capable.</div><div class="ttdef"><b>Definition:</b> conditional_removal.h:113</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html"><div class="ttname"><a href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a></div><div class="ttdoc">PointCloud represents the base class in PCL for storing collections of 3D points.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:173</div></div>
<div class="ttc" id="aclasspcl_1_1_tf_quadratic_x_y_z_comparison_html_a47d5d97a31a86606f138aeae4de0d5e7"><div class="ttname"><a href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a47d5d97a31a86606f138aeae4de0d5e7">pcl::TfQuadraticXYZComparison::setComparisonVector</a></div><div class="ttdeci">void setComparisonVector(const Eigen::Vector3f &amp;vector)</div><div class="ttdoc">set the vector &quot;v&quot; of the comparison &quot;p'Ap + 2v'p + c [OP] 0&quot;.</div><div class="ttdef"><b>Definition:</b> conditional_removal.h:367</div></div>
<div class="ttc" id="aclasspcl_1_1_tf_quadratic_x_y_z_comparison_html_a888f33172e35b6d8ffb3e3305661aeeb"><div class="ttname"><a href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a888f33172e35b6d8ffb3e3305661aeeb">pcl::TfQuadraticXYZComparison::transformComparison</a></div><div class="ttdeci">void transformComparison(const Eigen::Matrix4f &amp;transform)</div><div class="ttdoc">transform the coordinate system of the comparison. If you think of the transformation to be a transla...</div><div class="ttdef"><b>Definition:</b> conditional_removal.h:400</div></div>
<div class="ttc" id="aclasspcl_1_1_tf_quadratic_x_y_z_comparison_html_aebb2683ad5578b74adae49816da0252d"><div class="ttname"><a href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#aebb2683ad5578b74adae49816da0252d">pcl::TfQuadraticXYZComparison::setComparisonMatrix</a></div><div class="ttdeci">void setComparisonMatrix(const Eigen::Matrix3f &amp;matrix)</div><div class="ttdoc">set the matrix &quot;A&quot; of the comparison &quot;p'Ap + 2v'p + c [OP] 0&quot;.</div><div class="ttdef"><b>Definition:</b> conditional_removal.h:346</div></div>
<div class="ttc" id="agroup__common_html_gaa2ff830572b7cbf2fd8ce335fd9ca4fb"><div class="ttname"><a href="group__common.html#gaa2ff830572b7cbf2fd8ce335fd9ca4fb">pcl::getFields</a></div><div class="ttdeci">void getFields(const pcl::PointCloud&lt; PointT &gt; &amp;cloud, std::vector&lt; pcl::PCLPointField &gt; &amp;fields)</div><div class="ttdoc">Get the list of available fields (i.e., dimension/channel)</div><div class="ttdef"><b>Definition:</b> io.hpp:79</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a258054e9ce6fa5f7f85777fbbc4a506f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a258054e9ce6fa5f7f85777fbbc4a506f">&#9670;&nbsp;</a></span>evaluate()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html">pcl::TfQuadraticXYZComparison</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::evaluate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine the result of this comparison. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point</td><td>the point to evaluate </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>the result of this comparison. </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_comparison_base.html#a4c3dbd8f68cb59b0d67bcf7a0b175f2f">pcl::ComparisonBase&lt; PointT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;{</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;  Eigen::Vector4f pointAffine;</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;  pointAffine &lt;&lt; point.x, point.y, point.z, 1; </div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;  </div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;  <span class="keywordtype">float</span> myVal = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(2.0f * tf_comp_vect_.transpose () * pointAffine) + <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(pointAffine.transpose () * tf_comp_matr_ * pointAffine) + comp_scalar_ - 3.0f;</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;  </div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;  <span class="comment">// now do the comparison</span></div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;  <span class="keywordflow">switch</span> (this-&gt;<a class="code" href="classpcl_1_1_comparison_base.html#a709e0c328ab14d502be0454380932652">op_</a>)</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;  {</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    <span class="keywordflow">case</span> pcl::ComparisonOps::GT:</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;      <span class="keywordflow">return</span> (myVal &gt; 0);</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    <span class="keywordflow">case</span> pcl::ComparisonOps::GE:</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;      <span class="keywordflow">return</span> (myVal &gt;= 0);</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    <span class="keywordflow">case</span> pcl::ComparisonOps::LT:</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;      <span class="keywordflow">return</span> (myVal &lt; 0);</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <span class="keywordflow">case</span> pcl::ComparisonOps::LE:</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;      <span class="keywordflow">return</span> (myVal &lt;= 0);</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    <span class="keywordflow">case</span> pcl::ComparisonOps::EQ:</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;      <span class="keywordflow">return</span> (myVal == 0);</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;      PCL_WARN (<span class="stringliteral">&quot;[pcl::transformableQuadricXYZComparison::evaluate] unrecognized op_!\n&quot;</span>);</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;      <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;  }</div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab1933b0e18e01cab1fa6b344c91512e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1933b0e18e01cab1fa6b344c91512e3">&#9670;&nbsp;</a></span>transformComparison() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html">pcl::TfQuadraticXYZComparison</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::transformComparison </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>transform</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>transform the coordinate system of the comparison. If you think of the transformation to be a translation and rotation of the comparison in the same coordinate system, you have to provide the inverse transformation. This function does not change the original definition of the comparison. Thus, each call of this function will assume the original definition of the comparison as starting point for the transformation. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">transform</td><td>the transformation (rotation and translation) as an affine matrix. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;      {</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        <a class="code" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html#a888f33172e35b6d8ffb3e3305661aeeb">transformComparison</a> (transform.matrix ());</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a888f33172e35b6d8ffb3e3305661aeeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a888f33172e35b6d8ffb3e3305661aeeb">&#9670;&nbsp;</a></span>transformComparison() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html">pcl::TfQuadraticXYZComparison</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::transformComparison </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Matrix4f &amp;&#160;</td>
          <td class="paramname"><em>transform</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>transform the coordinate system of the comparison. If you think of the transformation to be a translation and rotation of the comparison in the same coordinate system, you have to provide the inverse transformation. This function does not change the original definition of the comparison. Thus, each call of this function will assume the original definition of the comparison as starting point for the transformation. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">transform</td><td>the transformation (rotation and translation) as an affine matrix. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;      {</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        tf_comp_matr_ = transform.transpose () * comp_matr_ * transform;</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        tf_comp_vect_ = comp_vect_.transpose () * transform;</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>filters/include/pcl/filters/<a class="el" href="conditional__removal_8h_source.html">conditional_removal.h</a></li>
<li>filters/include/pcl/filters/impl/<a class="el" href="conditional__removal_8hpp_source.html">conditional_removal.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_tf_quadratic_x_y_z_comparison.html">TfQuadraticXYZComparison</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
